package com.hyt.it.ogt.ks.model.vo.paper;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

import com.hyt.it.ogt.ks.model.vo.ItemAttrDTO;
import com.hyt.it.ogt.ks.model.vo.ItemFileDTO;

import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.experimental.Accessors;

/**
 * @author 刘恒活
 * @since 2021/6/7 10:02
 */
@Data
@Accessors(chain = true)
@Builder
@AllArgsConstructor
public class PItemDTO implements Serializable {
    private static final long serialVersionUID = 1L;

    public PItemDTO(){
    }

    @ApiModelProperty(value = "大题编号")
    private String topicId;

    @ApiModelProperty(value = "大题名称（题干）")
    private String topicName;

    @ApiModelProperty(value = "大题描述")
    private String topicDescription;

    @ApiModelProperty(value = "大题总分")
    private BigDecimal topicScore;

    @ApiModelProperty(value = "大题号")
    private Integer topicSort;

    @ApiModelProperty(value = "小题数量")
    private Integer itemNumber;

    @ApiModelProperty(value = "小题序号")
    private Integer itemSort;

    @ApiModelProperty(value = "小题ID")
    private String itemId;

    @ApiModelProperty(value = "小题题干内容")
    private String itemContent;

    @ApiModelProperty(value = "小题题型")
    private String itemType;

    @ApiModelProperty(value = "题目选项")
    private Map<String, POptionDTO> optionMap;

    @ApiModelProperty(value = "答案解析")
    private String itemDescription;

    @ApiModelProperty(value = "标准答案，若有多给分点则用英文“,”分割且顺序要对应分值的顺序（例如：A,B,AB）")
    private String standardAnswer;

    @ApiModelProperty(value = "小题分值")
    private String score;

    @ApiModelProperty(value = "试题编号(性格测试卷调用报告接口使用)")
    private String itemSerialNumber;

    @ApiModelProperty(value = "父题id，前端新建试卷时无需传值，编辑试卷时也无需传值")
    private String itemPid;

    private Map<String, PItemDTO> childItemMap;

    @ApiModelProperty(value = "题干资源文件")
    private List<ItemFileDTO> stemAttrs;

    @ApiModelProperty(value = "答案解析资源文件")
    private List<ItemFileDTO> descriptionAttrs;

    @ApiModelProperty(value = "标答资源文件")
    private List<ItemFileDTO> answerAttrs;

    @ApiModelProperty(value = "属性数据列表")
    private List<ItemAttrDTO> attrsDataList;

    @ApiModelProperty(value = "开启试题计时 false：未开启  true：开启'")
    private Boolean openItemTiming;

    @ApiModelProperty(value = "作答时长（毫秒）")
    private Long outTimeSecond;
}
